Skip to main content

Fanbook SDK接入文档

集成#

向FanBook注册您的应用程序#

请到开发者平台 应用管理页面 创建应用。创建完成并选择新建的应用,将获得Fanbook clientID,可立即用于开发。

下载SDK#

SDK 仅包含一个fanbook-sdk-x.x.x.aar文件,请点击 FanBookSDK下载 获取最新 SDK。

导入SDK#

  • (1)找到您的App工程下的libs文件夹,将下载的压缩文件中的的aar文件fanbook-sdk-x.x.x.aar拷贝到该目录下。
  • (2)然后在项目根目录下面的build.gradle文件中,添加本地的libs目录作为本地仓库,如下所示。
repositories {    flatDir {        dirs 'libs'    }}
  • (3)最后在Android Studio中找到您的App所在的module目录,修改它的build.gradle文件,在dependencies下面添加SDK的依赖,如下所示。
...dependencies {    implementation(name: 'fanbook-sdk-x.x.x', ext: 'aar')}...

如果您使用的Android Studio版本低于3.0,那么请按照下面的方式修改App所在Module的build.gradle文件。

...dependencies {    compile files('libs/fanbook-sdk-x.x.x.aar')}...

添加SDK需要的配置#

找到您的App所在module的目录,修改AndroidManifest.xml文件,在application标签下添加配置:

<activity    android:name="com.fanbook.sdk.view.activity.FanbookEntryActivity"    android:launchMode="singleTask">    <intent-filter>        <data android:scheme="fanbook${PACKAGE_SCHEMA}${FANBOOK_CLIENTID}" />        <category android:name="android.intent.category.DEFAULT" />        <action android:name="android.intent.action.VIEW" />        <category android:name="android.intent.category.BROWSABLE" />    </intent-filter></activity>
<provider     android:name="com.fanbook.sdk.provider.FanbookProvider"     android:authorities="${applicationId}.provider.FanbookProvider"     android:exported="false"     android:grantUriPermissions="true">     <meta-data        android:name="android.support.FILE_PROVIDER_PATHS"        android:resource="@xml/fanbook_provider_paths" /></provider>
<meta-data     android:name="fanbook.clientid"     android:value="fanbook_${FANBOOK_CLIENTID}" />

将配置中所有的${applicationId}替换为应用包名

将配置中所有的${PACKAGE_SCHEMA}替换为包名去掉"."符号后的字符串

如应用包名:com.fanbook.sdk

去掉.后的结果:comfanbooksdk

将配置中所有的${FANBOOK_CLIENTID}替换为Fanbook clientID

混淆配置#

如果您开启了混淆,请加入下面的配置:

-dontwarn com.fanbook.sdk.**-keep class com.fanbook.sdk.** {*;}

API#

注册#

接入场景描述:

注册Fanbook sdk,在调用其它接口前必须先完成注册接口调用

功能说明:

功能名称调用类型功能标识说明
注册同步调用registerApp-

参数 map 说明:

参数名类型是否必传说明备注
contextContext--

示例:

FanbookApi.get().registerApp(context);

获取版本号#

接入场景描述:

获取fanbook sdk版本号

功能说明:

功能名称调用类型功能标识说明
获取版本号同步调用getSDKVersion-

示例:

String version = FanbookApi.get().getSDKVersion();

是否安装了Fanbook APP#

接入场景描述:

判断设备是否安装了Fanbook APP

功能说明:

功能名称调用类型功能标识说明
是否安装了Fanbook APP同步调用isFanbookAppInstalled-

示例:

boolean isFanbookAppInstalled = FanbookApi.get().isFanbookAppInstalled(context);if(isFanbookAppInstalled){    //fanbook app已安装}else{    //fanbook app未安装}

打开Fanbook App#

接入场景描述:

打开Fanbook App

功能说明:

功能名称调用类型功能标识说明
打开Fanbook App同步调用openFanbookApp-

参数 map 说明:

参数名类型是否必传说明备注
urlString邀请链接打开Fanbook App后会自动跳转到该服务器和频道(如果未加入服务器会邀请加入)

示例:

HashMap<String, String> map = new HashMap<>();map.put("url", url);
FanbookApi.get().openFanbookApp(map, new CallBack() {    @Override    public void onSuccess(String msg, Object data) {        //打开Fanbook App成功    }
    @Override    public void onFail(int code, String msg, Object data) {        //打开Fanbook App失败     }});

打开圈子(弃用)#

接入场景描述:

打开Fanbook圈子

功能说明:

功能名称调用类型功能标识说明
打开圈子同步调用openFanbookZone-

参数 map 说明:

参数名类型是否必传说明备注
serverIdStringFanbook服务器ID-
channelIdStringFanbook Channel ID

示例:

FanbookApi.get().openFanbookZone(serverId,channelId);

打开网页#

接入场景描述:

通过url打开指定网页

功能说明:

功能名称调用类型功能标识说明
打开网页同步调用openUrl-

参数 map 说明:

参数名类型是否必传说明备注
urlString网页地址-

示例:

FanbookApi.get().openUrl(url);

获取授权码#

接入场景描述:

获取Fanbook APP授权码

功能说明:

功能名称调用类型功能标识说明
获取授权码异步调用SendAuth-

参数 map 说明:

参数名类型是否必传说明备注
inviteCodeStringFanbook服务器邀请码。当玩家不在官方服务器时,使用此邀请码邀请玩家加入-
guildIdStringFanbook服务器ID-

示例:

AuthObject authObject = new AuthObject();authObject.setInviteCode(inviteCode);authObject.setGuildId(guildId);FanbookApi.get().sendReq(new SendAuth.Req(authObject), new CallBack<String>() {    @Override    public void onSuccess(String msg, String data) {        //获取授权成功,授权码=data    }
    @Override    public void onFail(int code, String msg, Object data) {        //获取授权码失败    }});

分享#

图片#

接入场景描述:

分享图片到Fanbook APP

功能说明:

功能名称调用类型功能标识说明
图片分享异步调用ImageObject-

参数 map 说明:

参数名类型是否必传说明备注
descString描述字符串-
inviteCodeStringFanbook服务器邀请码。当玩家不在官方服务器时,使用此邀请码邀请玩家加入-
guildIdStringFanbook服务器ID-
imageString图片的网络地址或本地路径或图片的二进制数据,需将byte[]转换成String类型byte[]数据类型内容大小不超过10MB

示例:

ImageObject imageObject = new ImageObject();imageObject.setDesc(desc);imageObject.setInviteCode(inviteCode);imageObject.setGuildId(guildId);imageObject.setImage(image);
FanbookApi.get().sendReq(new SendShare.Req(imageObject), new CallBack<String>() {    @Override    public void onSuccess(String msg, String data) {        //分享成功    }
    @Override    public void onFail(int code, String msg, Object data) {        //分享失败    }});

链接#

接入场景描述:

分享链接到Fanbook APP

功能说明:

功能名称调用类型功能标识说明
链接分享异步调用LinkObject-

参数 map 说明:

参数名类型是否必传说明备注
descString描述字符串-
inviteCodeStringFanbook服务器邀请码。当玩家不在官方服务器时,使用此邀请码邀请玩家加入-
guildIdStringFanbook服务器ID-
imageString图片的网络地址或本地路径或图片的二进制数据,需将byte[]转换成String类型byte[]数据类型内容大小不超过10MB
linkString链接url-

示例:

LinkObject linkObject = new LinkObject();linkObject.setDesc(desc);linkObject.setInviteCode(inviteCode);linkObject.setGuildId(guildId);linkObject.setImage(image);linkObject.setLink(link);
FanbookApi.get().sendReq(new SendShare.Req(linkObject), new CallBack<String>() {    @Override    public void onSuccess(String msg, String data) {        //分享成功    }
    @Override    public void onFail(int code, String msg, Object data) {        //分享失败    }})

错误码#

错误码描述
0成功
-10000未知失败
-10001未安装fanbook app
-10002安装的fanbook app版本过低
-10003参数缺少或错误